﻿Public Class ChuNha

    Private cnBUS As ChuNhaBUS
    Private cnDTO As ChuNhaDTO
    Private cm As CurrencyManager
    Private flagIsUp As Boolean
   
    
    Private Sub ChuNha_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        LoadData()

    End Sub
    Private Sub LoadData()
        dgvChuNha.ClearSelection()
        cnBUS = New ChuNhaBUS
        Dim cnList = New List(Of ChuNhaDTO)
        cnList = cnBUS.GetData()
        cm = Me.BindingContext(cnList)
        txtCMND.DataBindings.Add("Text", cnList, "CMNDChuNha")
        txtTenChuNha.DataBindings.Add("Text", cnList, "TenChuNha")
        txtDiaChi.DataBindings.Add("Text", cnList, "DiaChiChuNha")
        txtDienThoai.DataBindings.Add("Text", cnList, "DienThoaiChuNha")
        cboLoainha.DataBindings.Add("Text", cnList, "MaLoaiNha")
        dgvChuNha.DataSource = cnList
    End Sub
    Private Sub LockTextbox(ByVal f As Boolean)
        txtCMND.Enabled = f
        txtDiaChi.Enabled = f
        txtDienThoai.Enabled = f
        txtTenChuNha.Enabled = f
        cboLoainha.Enabled = f
        If f = False Then
            txtCMND.BackColor = Color.LemonChiffon
            txtTenChuNha.BackColor = Color.LemonChiffon
            txtDiaChi.BackColor = Color.LemonChiffon
            txtDienThoai.BackColor = Color.LemonChiffon
            cboLoainha.BackColor = Color.LemonChiffon
        Else
            txtCMND.BackColor = Color.White
            txtTenChuNha.BackColor = Color.White
            txtDiaChi.BackColor = Color.White
            txtDienThoai.BackColor = Color.White
            cboLoainha.BackColor = Color.White
        End If
    End Sub
    Private Sub LockButton(ByVal dt As Boolean)
        btnThem.Enabled = dt
        btnSua.Enabled = dt
        btnXoa.Enabled = dt
        btnLuu.Enabled = Not dt
        btnThoat.Enabled = dt
    End Sub

    Private Sub btnThem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnThem.Click
        flagIsUp = True
        LockTextbox(True)
        LockButton(False)
        ClearTextbox()
        dgvChuNha.Enabled = False
        txtTenChuNha.Focus()
    End Sub
    Private Sub ClearTextbox()
        txtCMND.Text = ""
        txtTenChuNha.Text = ""
        txtDiaChi.Text = ""
        txtDienThoai.Text = ""
        cboLoainha.Text = ""
    End Sub

    Private Sub btnXoa_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnXoa.Click
        Dim cmnd As String = txtCMND.Text
        Dim qs = MsgBox("Bạn chắc chắn muốn xóa tất cả thông tin về:" _
                        & vbCrLf & vbCrLf & " - CMND Chủ Nhà: " & txtCMND.Text _
                        & vbCrLf & vbCrLf & " - Tên Chủ Nhà: " & txtTenChuNha.Text & vbCrLf & vbCrLf & "_Đia Chỉ Chủ Nhà: " & txtDiaChi.Text & vbCrLf & vbCrLf & " - Điện Thoại Chủ Nhà: " & txtDienThoai.Text & vbCrLf & vbCrLf & " -Mã Loại Nhà: " & cboLoainha.Text, _
                        vbInformation + vbYesNo, "Thông báo")
        If qs = vbYes Then
            cnDTO = New ChuNhaDTO(cmnd)
            cnBUS = New ChuNhaBUS()
            cnBUS.XoaChuNha(cnDTO)
            ClearBinding()
            LoadData()
            LockTextbox(False)
            LockButton(True)
            dgvChuNha.Enabled = True
            MsgBox("Dữ liệu đã xóa thành công", vbInformation, "Thông báo")
        Else
            MsgBox("Đã hủy thao tác xóa!", vbExclamation, "Thông báo")
        End If
    End Sub
    Private Sub ClearBinding()
        txtCMND.DataBindings.Clear()
        txtTenChuNha.DataBindings.Clear()
        txtDiaChi.DataBindings.Clear()
        txtDienThoai.DataBindings.Clear()
        cboLoainha.DataBindings.Clear()

    End Sub

    Private Sub btnSua_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSua.Click
        flagIsUp = False
        LockTextbox(True)
        LockButton(False)
        dgvChuNha.Enabled = False
        txtCMND.Focus()
    End Sub

    Private Sub btnLuu_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnLuu.Click
        ' khai bao bien
        Dim cmnd As String = txtCMND.Text
        Dim ten As String = txtTenChuNha.Text
        Dim diachi As String = txtDiaChi.Text
        Dim dienthoai As String = txtDienThoai.Text
        Dim maloainha As String = cboLoainha.Text

        '---------------------------------------------
        If TestInfo() Then
            cnDTO = New ChuNhaDTO(cmnd, ten, diachi, dienthoai, maloainha)
            cnBUS = New ChuNhaBUS()
            cnBUS.CapNhat(cnDTO, flagIsUp)
            ClearBinding()
            LoadData()
            LockTextbox(False)
            LockButton(True)
            dgvChuNha.Enabled = True
            MsgBox("Đã cập nhật dữ liệu thành công", MsgBoxStyle.Information, "Thông báo")
        End If

    End Sub

    Private Function TestInfo() As Boolean
        TestInfo = True
        If Trim(txtCMND.Text) = "" Then
            TestInfo = False
            MsgBox("CMND không được bỏ trống!", MsgBoxStyle.Exclamation, "Thông báo lỗi")
            txtCMND.Focus()
            Exit Function
        ElseIf Trim(txtTenChuNha.Text) = "" Then
            TestInfo = False
            MsgBox("Tên Chủ Nhà không được bỏ trống!", MsgBoxStyle.Exclamation, "Thông báo lỗi")
            txtTenChuNha.Focus()
            Exit Function
        ElseIf Trim(txtDiaChi.Text) = "" Then
            TestInfo = False
            MsgBox("Địa Chỉ Chủ Nhà không được bỏ trống!", MsgBoxStyle.Exclamation, "Thông báo lỗi")
            txtDiaChi.Focus()
            Exit Function
        ElseIf Trim(txtDienThoai.Text) = "" Then
            TestInfo = False
            MsgBox("Điện thoại Chủ Nhà không được bỏ trống!", MsgBoxStyle.Exclamation, "Thông báo lỗi")
            txtDienThoai.Focus()
            Exit Function
        ElseIf Trim(cboLoainha.Text) = "" Then
            TestInfo = False
            MsgBox("Mã Loại Nhà không được bỏ trống!", MsgBoxStyle.Exclamation, "Thông báo lỗi")
            cboLoainha.Focus()
            Exit Function
        End If
    End Function

    Private Sub btnHuy_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnHuy.Click
        ClearBinding()
        LoadData()
        LockTextbox(False)
        LockButton(True)
        dgvChuNha.Enabled = True
    End Sub

    Private Sub btnThoat_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnThoat.Click
        Me.Close()
    End Sub
   

End Class